/**
 * 1.文本初始化加载区
 */
$(function() {
	//1：页面内容初始化
    //2：按钮绑定
    $("#btn_save").live("click", function() {
        save(this);
    });
    
    $("#btn_back").live("click", function() {
        back(this);
    });
    
    $("#btn_addChd").live("click", function() {
        addChd(this);
    });
    
    $("#btn_saveChd").live("click", function() {
        saveChd(this);
    });
    
    $("#btn_showHide").live("click", function() {
        $("#queryCondition").toggle();
        showTextHideObj( $("#queryCondition"));
    });
    
    //3：其它初始化方法
    formValidate();
});


function saveChd(thisObj) {
	//1.数据准备
	//2.保存操作   保存时的validate 验证
	//3.成功、失败提示
	//4.成功时的信息更新   新生成的ID
	if($("#editForm").valid()){
	    $.ajax({
	    	type : "post", // 数据发送方式
	    	url : ctx+"/dict/dictionary!saveAllChd.action",
			dataType : "json", // 接受数据格式
	        data : saveChdData(),
	        success : function(data, textStatus) {
	            $("#id").val(data.id);
	            search();
	            alert("操作成功！");
	        },
	        error:function(){
	       	 	alert("操作失败，请稍后重试！");
	        }
	    });
    }
}
/**
 * 2.内容保存
 */
function save(thisObj) {
	//1.数据准备
	//2.保存操作   保存时的validate 验证
	//3.成功、失败提示
	//4.成功时的信息更新   新生成的ID
	if($("#editForm").valid()){
	    $.ajax({
	    	type : "post", // 数据发送方式
	    	url : ctx+"/dict/dictionary!save.action",
			dataType : "json", // 接受数据格式
	        data : saveData(),
	        success : function(data, textStatus) {
	            $("#id").val(data.id);
	            alert("操作成功！");
	        },
	        error:function(){
	       	 	alert("操作失败，请稍后重试！");
	        }
	    });
    }
}

/**
 * 2.1保存数据
 */
function saveData(thisObj) {
	var saveJsonData = {
		'dict.id' : $("#id").val(),//主键
		'dict.pid' : $("#pid").val(),//父对像主键
		'dict.paramCode' : $("#paramCode").val(),//参数编码
		'dict.paramName' : $("#paramName").val(),//参数名称
		'dict.paramI18nKey' : $("#paramI18nKey").val(),//国际化资源文件KEY
		'dict.description' : $("#description").val(),//层次码
	};
	return saveJsonData;
}

function arr2str(selected,split,defVal){
	var objsStr="";
	$(selected).each(function(i,o){
		objsStr+=$(o).val();
		if(defVal){
			objsStr+=defVal;
		}
		objsStr+=split;
	});
	return objsStr.substring(0,objsStr.length-1);
}

/**
 * 2.1保存数据
 */
function saveChdData(thisObj) {
	var C = $('#resultBody');
	//alert(arr2str($(":hidden[name='id']",C),"|","0"));
	var saveJsonData = {
		'ids' : arr2str($(":hidden[name='id']",C),"|","0"),//主键
		'pid' : $("#id").val(),//父对像主键
		'orderNums' :arr2str($(":text[name='torderNum']",C),"|"),//参数编码
		'paramCodes' :arr2str($(":text[name='tparamCode']",C),"|"),//参数编码
		'paramNames' : arr2str($(":text[name='tparamName']",C),"|"),//参数名称
		'paramI18nKeies' :arr2str($(":text[name='tparamI18nKey']",C),"|"),//国际化资源文件KEY
		'descriptions' : arr2str($(":text[name='tdescription']",C),"|")//层次码
	};
	return saveJsonData;
}

function showTextHideObj(container,txtClass){
	var classz=(txtClass?txtClass:"txtVal");
	var showSize=$(":text:visible",container).size();
	$(":text",container).each(function(i,o){
		if(showSize==0){
			$(this).show();
			if($(this).next("label").size()>0){
				$(this).next("label").hide();
			}
		}else{
			$(this).hide();
			if($(this).next("label").size()==0){
				$(this).after("<label class='"+classz+" ltd'>"+$(this).val()+"</label>");
			}else{
				$(this).next("label").text($(this).val()).show();
			}
		}
	});
	$("textarea",container).each(function(i,o){
		if(showSize==0){
			$(this).show();
			if($(this).next("label").size()>0){
				$(this).next("label").hide();
			}
		}else{
			$(this).hide();
			if($(this).next("label").size()==0){
				$(this).after("<label class='"+classz+" ltd'>"+$(this).val()+"</label>");
			}else{
				$(this).next("label").text($(this).val()).show();
			}
		}
	});
}

/**
 * 3.关闭
 */
function back(thisObj){
	jump(ctx+"/dict/dictionary!init.action");
}



function addChd(){
	var C = $('#resultBody');
	var tmpHtml=$("#resultTemplate").html();
	var E=$(tmpHtml);
		$("span",E).hide();
		$(":text",E).show();
		$("span[name='optList']",E).show();
		$("span[name='ind']",E).show();
	C.append(E);
	intInd();
	dataOptBind($('#resultBody'));
}

function intInd(){
	$("span[name='ind']").each(function(i,o){
		$(o).text(i);
	});
}

//-----------------------------------------
/**
 * 1.文本初始化加载区
 */
$(function() {
    //2：按钮绑定
    $("#btn_search").live("click", function() {
        search(this);
    });
    
    $("#btn_add").live("click", function() {
        modView(this);
    });
    
    //3：其它初始化方法
    pageInit();
    search();
});

/**
 * 第一次进入页面时页码列表的初始化
 */
function pageInit() {
	// 1.默认查询参数初始化
	var queryJson = createQueryJson();
	$("#Pagination").data("PD", queryJson);
	// 2.默认分页条数据初始化
//	var pageSize = $("#pageSizeExt").val();
//	$("#pageSize").val(pageSize);
	// 3.选项卡上记录数初始化
	//updateCount(parseInt($("#totalCountExt").val()));
	// 4.分页小方块内容生成
	initPagination(parseInt($("#totalCountExt").val()));
	// 5.
	//var C = $('#resultBody', $(".z_tab_content:visible"));
	dataOptBind($('#resultBody'));
}

/**
 * 1.1查询条件 数据准备
 * @param {} thisObj
 * @return {}
 */
function createQueryJson(thisObj) {
	var C=$("#editForm");
	var queryJson = {
		'dict.pid' : $("#id",C).val(),//父对像主键
		'page.pageSize' : $("#pageSize").val(),
		'page.currentPage' : 1,//从1开始
		'Page.orderBy' : $("#orderBy").val(),
		'page.order' : $("#order").val()
	};
	queryJson.URL=ctx+"/dict/dictionary!search.action";
	$("#Pagination").data("PD",queryJson);
	return queryJson;
}

/**
 * 2.查询操作
 */
function search(thisObj) {
	//1.生成查询条件
	createQueryJson();
	//2.执行查询操作
	search_in(thisObj);
}

/**
 * 2.查询操作 内部函数
 */
function search_in(thisObj){
	//1.查询数据准备
	//2.执行查询
	//3.查询数据回写  回写时重新写   页码、内容  [点击 搜索、分页搜索]
    var queryJson=ParamData();
	$.ajax({
    	type : "post", 
    	dataType : "json", 
    	url : queryJson.URL,
        data : queryJson,
        success : function(data, textStatus) {
	        if (data.status == "1") {//成功
	            initPagination(data.totalCount);
				createContent(data.result);
				intInd();
			}else{
				//pageNoRollback();
	        	alert("操作失败，请稍后重试！");
	        }
        },
        error:function(){
       	 	//pageNoRollback();
       	 	alert("操作失败，请稍后重试！");
        }
    });
}

/**
 * 2.1查询内容展示
 * @param {} data
 * @return {Boolean}
 */
function createContent(DL) {
	var C = $('#resultBody').empty();
	var tmpHtml=$("#resultTemplate").html();
	if (jQuery.isEmptyObject(DL)) {
		return false;
	}

	for ( var i = 0; i < DL.length; i++) {
		var RED=DL[i];
		var E=$(tmpHtml);
		$(":hidden[name='id']",E).val(RED.pid);
		$("span[name='paramCode']",E).text(RED.paramCode);
		$("span[name='paramName']",E).text(RED.paramName);
		$("span[name='description']",E).text(RED.description);
		$("span[name='paramI18nKey']",E).text(RED.paramI18nKey);
		$("span[name='orderNum']",E).text(RED.orderNum);
		
		$(":text[name='tparamCode']",E).val(RED.paramCode);
		$(":text[name='tparamName']",E).val(RED.paramName);
		$(":text[name='tdescription']",E).val(RED.description);
		$(":text[name='tparamI18nKey']",E).val(RED.paramI18nKey);
		$(":text[name='torderNum']",E).val(RED.orderNum);
		$(":text[name='optList']",E).attr("objId",RED.id);

		C.append(E);
	}
	dataOptBind(C);
}

//2.2 新增后的数据显示到列表   两部分内容：初始化记录绑定 和 后ajax 新增记录的绑定 
function dataOptBind(C) {
	$("a[name='delOpt']",C).unbind('click');
	$("a[name='modOpt']",C).unbind('click');
	$("a[name='previewOpt']",C).unbind('click');
	$("a[name='delOpt']",C).bind('click',function(){
		delOpt($(this));
	});
	$("a[name='modOpt']",C).bind('click',function(){
		modOpt($(this));
	});
	$("a[name='previewOpt']",C).bind('click',function(){
		previewOpt($(this));
	});
}

//3.1 删除操作：删除当前记录，并刷新页面[回刷页面时要重新计算分页]
function delOpt(thisObj){
	if(confirm("确认要删除此记录？")){
		var queryJson={"dict.id":$(thisObj).parent().attr("objId")};
		if(queryJson["dict.id"].length>0){
			$.ajax({
		    	type : "post", 
		    	dataType : "json",
		    	url : ctx+"/dict/dictionary!delete.action",
		        data : queryJson,
		         success : function(data, textStatus) {
		         	if (data.status == "1") {//成功
		            	search();
		            }else{
			        	alert("操作失败，请稍后重试！");
			        }
		        },
		        error:function(){
		       	 	alert("操作失败，请稍后重试！");
		        }
		    });
		}else{
			$(thisObj).parent().parent().parent().remove();
		}
    	
	}
}
/**
 * 3.2 转向修改、新增页
 */
function modOpt(thisObj){
	var C=$(thisObj).parent().parent().parent();
		$("span",C).hide();
		$(":text",C).show();
		$("span[name='optList']",C).show();
		$("span[name='ind']",C).show();
}


//4.表单重置 
function formReset() {
	document.getElementById("editForm").reset();
	$("#id").val("");
}

/**
 * 没有记录的提示内容
 * @param count
 */
function isShowRecordMsg(){
	var count=$("#resultBody tr").size();
	if(count>0){
		$("#noRecordMsg").hide();
	}else{
		$("#noRecordMsg").show();
	}
}

// ------------------- 分页查询 ------------------------

// 初始化分页信息 TC:记录总数
function initPagination(TC,pageNo) {
	var PD=ParamData();
	var pageSize=PD['page.pageSize'];
	var totalPage=Math.ceil(TC/pageSize);
	if(pageNo==undefined||pageNo<=0){
		pageNo=0;
	}else if(pageNo>(totalPage-1)){
		pageNo=totalPage;
	}
	if(TC>0){
		$("#Pagination").show();
	}else{
		$("#Pagination").hide();
	}
	PD['page.total']=pageNo;
	$("#Pagination").pagination(TC, {
		num_edge_entries : 1,
		num_display_entries : 10,
		link_to : 'javascript:void(0)',
		callback : pageSelectCallback,
		items_per_page : $("#pageSize").val(),
		current_page : pageNo,
		next_text : "下一页",
		prev_text : "上一页"
	});
}

//分页回调函数
function pageSelectCallback(page_index, pagination) {
	var queryJson = $("#Pagination").data("PD");
	queryJson['page.currentPage'] = page_index + 1;
	$.ajax({
		type : "post",
		url : queryJson.URL,
		data : queryJson,
		success : function(data, textStatus) {
			if (data.status == "1") {
				createContent(data.result);
			} else {
				alert("抱歉 查询失败，请稍后再试！");
			}
		}
	});
}

// 页码回滚 pageNo:从0开始
function pageNoRollback() {
	var data=ParamData();
	var pageSize=data['page.pageSize'];
	var TC=data['page.total'];
	var pageNo=data['page.currentPage'];
	var totalPage=Math.ceil(TC/pageSize);
	if(pageNo==undefined||pageNo<=0){
		pageNo=0;
	}else if(pageNo>(totalPage-1)){
		pageNo=totalPage;
	}else{
		pageNo=pageNo-1;
	}
	updateQueryJson('page.currentPage',pageNo);
	initPagination(TC,pageNo);
}

//------------------- 工具方法------------------------
// 参数数据的更新    pageNo:从0开始  PD:参数数据
function updateQueryJson(K,V) {
	var data=ParamData();
	data[K]=V;
	$("#Pagination").data("PD",data);
}

// 得到queryJson里指定Key的值
function ParamData(){
	return $("#Pagination").data("PD");
}


/**
 * 4.保存前有验证
 */
function formValidate() {
		$("#editForm").validate({
		rules: {
		
		'paramCode': {
		     required: true
		     ,maxlength:32
			},
		'paramName': {
		     required: true
		     ,maxlength:64
			},
		'paramI18nKey': {
		     required: true
		     ,maxlength:32
			}
		},
		
		/* 设置错误信息 */
		messages : {
			
			'paramCode': {
			     required: "请填写内容"
			     ,maxlength:"最大长度为32"
				},
			'paramName': {
			     required: "请填写内容"
			     ,maxlength:"最大长度为64"
				},
			'paramI18nKey': {
			     required: "请填写内容"
			     ,maxlength:"最大长度为32"
				}
		}
	});
}















